home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 February / PCWorld_2006-02_cd.bin / software / vyzkuste / triky / triky.exe / httrack-3.33.exe / {app} / src / md5.h < prev    next >
C/C++ Source or Header  |  2005-02-05  |  1KB  |  50 lines

  1. #ifndef MD5_H
  2. #define MD5_H
  3.  
  4. #ifdef _WIN32
  5. #ifndef SIZEOF_LONG
  6. #define SIZEOF_LONG 4
  7. #endif
  8. #else
  9. #include "config.h"
  10. #endif
  11.  
  12. #if SIZEOF_LONG==8
  13. typedef unsigned int uint32;
  14. #elif SIZEOF_LONG==4
  15. typedef unsigned long uint32;
  16. #else
  17. #error undefined: SIZEOF_LONG
  18. #endif
  19.  
  20. struct MD5Context {
  21.   unsigned char in[64];
  22.   uint32 buf[4];
  23.   uint32 bits[2];
  24. #ifdef _WIN32_WCE
  25.   uint32 pad[2];
  26. #endif
  27.   int doByteReverse;
  28. };
  29.  
  30. void MD5Init(struct MD5Context *context, int brokenEndian);
  31. void MD5Update(struct MD5Context *context, unsigned char const *buf,
  32.                unsigned len);
  33. void MD5Final(unsigned char digest[16], struct MD5Context *context);
  34. void MD5Transform(uint32 buf[4], uint32 const in[16]);
  35.  
  36. int mdfile(char *fn, unsigned char *digest);
  37. int mdbinfile(char *fn, unsigned char *bindigest);
  38.  
  39. /* These assume a little endian machine and return incorrect results! 
  40. They are here for compatibility with old (broken) versions of RPM */
  41. int mdfileBroken(char *fn, unsigned char *digest);
  42. int mdbinfileBroken(char *fn, unsigned char *bindigest);
  43.  
  44. /*
  45. * This is needed to make RSAREF happy on some MS-DOS compilers.
  46. */
  47. typedef struct MD5Context MD5_CTX;
  48.  
  49. #endif /* !MD5_H */
  50.